package main

import(
	"fmt"
	"os"
	"bufio"
	"io/ioutil"
)



func main(){
	// 打开文件
	// 概念说明 file 的叫法
	//  file 对象，file指针 file 文件句柄
	file , err:=os.Open("E:\\ProgramData\\GoWorkSpace\\src\\go_code\\project03/day1/text.txt")
	if err !=nil{
		fmt.Println("open file error=",err) //file=&{0xc000074780}  文件是个指针类型 
	}
	// 输出文件，看看文件是什么
	fmt.Printf("file=%v\n",file)
	// err =file.Close()
	// if err !=nil{
	// 	fmt.Println("close file error=",err)
	// }

	// 当函数退出时，要及时关闭file
	defer file.Close()

	// 创建一个*Reader ，带缓冲的
	/*
	const(
		defaultBufSize = 4096 
	)
	*/
	reader := bufio.NewReader(file)

	for {
		str,err := reader.ReadString('\n') // 读到一个换行就结束
		if err == io.EOF{//io.EOF 表示文件的结尾
			break
		}
		// 输出内容
		fmt.Print(str)
	}

	fmt.Println("文件读取结束...")
}